#ifndef _GRAY_H
#define _GRAY_H

#include "system.h"


#define GRAY_F_L   HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_8)   //读取前侧左部灰度传感器状态
#define GRAY_F_M   HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_1)   //读取前侧中部灰度传感器状态
#define GRAY_F_R   HAL_GPIO_ReadPin(GPIOF, GPIO_PIN_15)  //读取前侧右部灰度传感器状态
#define GRAY_B_L   HAL_GPIO_ReadPin(GPIOF, GPIO_PIN_13)   //读取后侧左部灰度传感器状态
#define GRAY_B_M   HAL_GPIO_ReadPin(GPIOF, GPIO_PIN_11)   //读取后侧中部灰度传感器状态
#define GRAY_B_R   HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_5)  //读取后侧右部灰度传感器状态
#define GRAY_L_F   HAL_GPIO_ReadPin(GPIOE, GPIO_PIN_7)  //读取左侧前部灰度传感器状态
#define GRAY_L_M   HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_0)   //读取左侧中部灰度传感器状态
#define GRAY_L_B   HAL_GPIO_ReadPin(GPIOF, GPIO_PIN_14)   //读取左侧后部灰度传感器状态
#define GRAY_R_F   HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_4)   //读取右侧前部灰度传感器状态
#define GRAY_R_M   HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0)   //读取右侧中部灰度传感器状态
#define GRAY_R_B   HAL_GPIO_ReadPin(GPIOF, GPIO_PIN_12)  //读取右侧后部灰度传感器状态


signed char gray_front_error(void);
signed char gray_back_error(void);
bool gray_is_cross(void);
bool gray_is_t(void);
bool gray_is_right_t(void);
bool gray_is_left_corner(void);
bool gray_is_right_corner(void);
bool gray_turn_not_ok0(void);
bool gray_turn_ok1(void);
void gray_single_test(void);
void gray_test(void);
bool gray_front_stop_line(void);

#endif 



